package main

import "fmt"

func main() {
	// 切片长度等于切出来的长度，容量为原数组的长度
	var arr1 = [5]int{1, 2, 3, 4, 5}
	slice1 := arr1[0:2] // 左包含，右不包含：0索引位~2索引位(不包含2索引位)
	fmt.Printf("%v len(slice1):%v cap(slice1):%v\n", slice1, len(slice1), cap(slice1))
	// output:[1 2] len(slice1):2 cap(slice1):5

	// 切片更多写法
	slice2 := arr1[2:] // =>arr1[2:len(arr1)]
	slice3 := arr1[:2] // =>arr1[0:2]
	slice4 := arr1[:]  // =>arr1[0:len(arr1)]
	fmt.Println(slice2, slice3, slice4)
	//输出结果 [3 4 5] [1 2] [1 2 3 4 5]

	// 切片完整写法 arr1[low:high:max] 注：max是设置切片的容量
	slice5 := arr1[0:3:4]
	fmt.Printf("%v %v\n", slice5, cap(slice5))
	// 输出结果 [1 2 3] 4

}
